/*
*	create by  jack ,20211109
*
*	描述 ：
*		  该文件提供了一套设备调用的接口，屏蔽具体实现细节,以达到应用程序可以在不同的平台上联合调试。
*		  open 返回该设备枚举类别。无设备实现时，返回负数.
*   修改记录：[内容][作者][时间]
*
*/


#ifndef _SANJI_OS_INPUT_H_
#define _SANJI_OS_INPUT_H_

#include "define_comm.h"
#include "device.h"
#include "gpio.h"
#include "event_def.h"

#include "task_manager.h"

#ifdef __cplusplus
extern "C"{
#endif


struct key_input_gpio
{
    struct rcc_apb_periph rcc_apb;
    struct gpio_pin res;
    sj_int8 type_value;
    sj_int8 default_val;
};

struct key_process
{
    sj_int8 last_value;
    sj_int8 time_count;
    sj_int8 final_value;
    sj_int8 process_state;
};

struct key_input_device_data
{
    struct key_input_gpio *gpio;
    struct key_process proc;
    sj_int8 key_num;
    sj_int8 tim_num;
    sj_int8 call_id;
    sj_sem sem;
};



#ifdef __cplusplus
}
#endif
#endif
